﻿using static TowerCraneMonitorClient.NetClient.BaseStatus;
using static TowerCraneMonitorClient.NetClient.StatusOffset;

namespace TowerCraneMonitorClient.NetClient
{
    /// <summary>
    /// 运行数据状态
    /// </summary>
    [System.Flags]
    public enum Status
    {
        /****************** 起重 ******************/

        /// <summary>
        /// 起重正常
        /// </summary>
        WeightNormal = Normal << Weight,

        /// <summary>
        /// 起重预警
        /// </summary>
        WeightEarlyWarning = EarlyWarning << Weight,

        /// <summary>
        /// 起重报警
        /// </summary>
        WeightWarning = Warning << Weight,

        /// <summary>
        /// 起重违规
        /// </summary>
        WeightViolationRegulations = ViolationRegulations << Weight,

        /// <summary>
        /// 起重故障
        /// </summary>
        WeightFault = Fault << Weight,

        /****************** 力矩 ******************/

        /// <summary>
        /// 力矩正常
        /// </summary>
        ForceNormal = Normal << Force,

        /// <summary>
        /// 力矩预警
        /// </summary>
        ForceEarlyWarning = EarlyWarning << Force,

        /// <summary>
        /// 力矩报警
        /// </summary>
        ForceWarning = Warning << Force,

        /// <summary>
        /// 力矩违规
        /// </summary>
        ForceViolationRegulations = ViolationRegulations << Force,

        /// <summary>
        /// 力矩故障
        /// </summary>
        ForceFault = Fault << Force,

        /****************** 风速 ******************/

        /// <summary>
        /// 风速正常
        /// </summary>
        WindNormal = Normal << Wind,

        /// <summary>
        /// 风速预警
        /// </summary>
        WindEarlyWarning = EarlyWarning << Wind,

        /// <summary>
        /// 风速报警
        /// </summary>
        WindWarning = Warning << Wind,

        /// <summary>
        /// 风速违规
        /// </summary>
        WindViolationRegulations = ViolationRegulations << Wind,

        /// <summary>
        /// 风速故障
        /// </summary>
        WindFault = Fault << Wind,


        /****************** 变幅 ******************/

        /// <summary>
        /// 变幅正常
        /// </summary>
        ExtentNormal = Normal << Extent,

        /// <summary>
        /// 变幅预警
        /// </summary>
        ExtentEarlyWarning = EarlyWarning << Extent,

        /// <summary>
        /// 变幅报警
        /// </summary>
        ExtentWarning = Warning << Extent,

        /// <summary>
        /// 变幅违规
        /// </summary>
        ExtentViolationRegulations = ViolationRegulations << Extent,

        /// <summary>
        /// 变幅故障
        /// </summary>
        ExtentFault = Fault << Extent,


        /****************** 高度 ******************/

        /// <summary>
        /// 高度正常
        /// </summary>
        HeightNormal = Normal << Height,

        /// <summary>
        /// 高度预警
        /// </summary>
        HeightEarlyWarning = EarlyWarning << Height,

        /// <summary>
        /// 高度报警
        /// </summary>
        HeightWarning = Warning << Height,

        /// <summary>
        /// 高度违规
        /// </summary>
        HeightViolationRegulations = ViolationRegulations << Height,

        /// <summary>
        /// 高度故障
        /// </summary>
        HeightFault = Fault << Height,


        /****************** 倾角 ******************/

        /// <summary>
        /// 倾角正常
        /// </summary>
        ObliqueAngleNormal = Normal << ObliqueAngle,

        /// <summary>
        /// 倾角预警
        /// </summary>
        ObliqueAngleEarlyWarning = EarlyWarning << ObliqueAngle,

        /// <summary>
        /// 倾角报警
        /// </summary>
        ObliqueAngleWarning = Warning << ObliqueAngle,

        /// <summary>
        /// 倾角违规
        /// </summary>
        //ObliqueAngleViolationRegulations = ViolationRegulations << ObliqueAngle,

        /// <summary>
        /// 倾角故障
        /// </summary>
        ObliqueAngleFault = Fault << ObliqueAngle,
    }
}
